"""
加密
"""

import hashlib
import hmac

from config import settings


def hash_with_sha256(msg: str) -> str:
    """
    使用 SHA-256 加密（单向加密，不可逆）

    Args:
        msg (str): 需要加密的字符串

    Returns:
        str: 加密后的字符串

    >>> hash_with_sha256("123456")
    "5f8af7d102a9bdb8ed06417e9a73fdfd221eaa0d16dabbc5a7e566e108f6e5d0"
    """

    key: str = settings.SECURITY.SECRET_KEY
    hashed_msg: str = hmac.new(
        key=key.encode("UTF-8"),
        msg=msg.encode("UTF-8"),
        digestmod=hashlib.sha256,
    ).hexdigest()

    return hashed_msg
